Skip to content

Add WA state income tax reform#7761

Open
daphnehanse11 wants to merge 4 commits intoPolicyEngine:mainfrom
daphnehanse11:wa-income-tax
Open

Add WA state income tax reform#7761
daphnehanse11 wants to merge 4 commits intoPolicyEngine:mainfrom
daphnehanse11:wa-income-tax

Conversation

@daphnehanse11
Copy link
Collaborator

@daphnehanse11 daphnehanse11 commented Mar 12, 2026

Summary

Implements Washington State SSB 6346 as a contributed reform:

  1. 9.9% income tax on high earners (Secs. 201-310)
  2. Working Families Tax Credit age expansion (Sec. 901)

Closes #7758.

Reform type

C: Comprehensive tax reform — new state income tax + WFTC eligibility expansion.

Parameters created

  • gov/contrib/states/wa/sb6346/in_effect.yaml — Boolean toggle (default: false)
  • gov/contrib/states/wa/sb6346/rate.yaml — 9.9% tax rate (effective 2028)
  • gov/contrib/states/wa/sb6346/standard_deduction/amount.yaml — $1,000,000 deduction
  • gov/contrib/states/wa/sb6346/charitable_deduction/cap/individual.yaml — $100,000 cap
  • gov/contrib/states/wa/sb6346/charitable_deduction/cap/joint.yaml — $100,000 cap (joint)
  • gov/contrib/states/wa/sb6346/wftc/min_age.yaml — Minimum age 18 for WFTC expansion

Variables defined

Income tax (Secs. 201-310)

  • wa_income_tax_base_income — NEW — Federal AGI as base (Secs. 302-306 modifications deferred)
  • wa_income_tax_charitable_deduction — NEW — Charitable deduction capped at $100K
  • wa_income_tax_standard_deduction — NEW — $1M standard deduction (same for all filers)
  • wa_income_tax_taxable_income — NEW — Base income minus deductions, floored at $0
  • wa_income_tax — OVERRIDE — 9.9% of taxable income + capital gains tax - refundable credits

WFTC expansion (Sec. 901)

  • wa_working_families_tax_credit — OVERRIDE — Expands eligibility to filers aged 18+ with earned income (previously required age 25+ via federal EITC eligibility)

Key implementation notes

  • The $1M standard deduction is shared by married couples (not doubled) per Sec. 310
  • Charitable deduction cap is $100K individual / $100K joint combined per Sec. 307
  • Base income simplified to federal AGI (full Secs. 302-306 modifications deferred)
  • WFTC expansion allows 18-24 year olds without children to receive the credit even without federal EITC eligibility
  • Bill passed both chambers March 2026; governor pledged to sign

Registration

  • Registered in reforms/reforms.py with factory function pattern
  • No modify_parameters() needed — overrides existing variables

Test coverage

11 test cases covering:

  • Income tax (8 tests): Single/married high earners, below-threshold, non-WA, charitable cap
  • WFTC expansion (3 tests): Age 22 with earnings (eligible), age 22 no earnings (ineligible), age 30 with earnings (baseline eligible)

Regulatory sources

Deferred for future enhancement

  • Full Secs. 302-306 base income modifications (LTCG swap, tax-exempt interest, state tax add-back)
  • CPI indexing of $1M standard deduction (Oct 2029 for tax year 2030, Seattle-area CPI-U)
  • ITIN filer eligibility for WFTC (Sec. 901(2)(a)(ii)(A))
  • Married-filing-separately WFTC eligibility (Sec. 901(2)(a)(ii)(B))
  • 5% revenue earmark for Fair Start for Kids Account (not household-level)

Files added/modified

  • policyengine_us/parameters/gov/contrib/states/wa/sb6346/ — 6 parameter files
  • policyengine_us/reforms/states/wa/sb6346/sb6346.py — reform implementation
  • policyengine_us/reforms/states/wa/sb6346/__init__.py — exports
  • policyengine_us/reforms/states/wa/__init__.py — package init
  • policyengine_us/reforms/reforms.py — registration
  • policyengine_us/tests/policy/contrib/states/wa/sb6346/sb6346.yaml — 11 tests
  • changelog.d/wa-income-tax.added.md — changelog entry
  • sources/working_references.md — reference documentation

daphnehanse11 and others added 3 commits March 12, 2026 09:46
Starting implementation of WA Senate Bill 6346-S: 9.9% income tax on household incomes over $1M.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@daphnehanse11
Copy link
Collaborator Author

Note: Inflation indexing of the $1M standard deduction

SSB 6346 Sec. 312 specifies that the $1M standard deduction should be indexed for inflation starting October 2029 (for tax year 2030), using the Seattle-area CPI-U (all items, all urban consumers), rounded to the nearest $1,000.

We don't currently have the Seattle-area CPI-U in PolicyEngine. A reasonable approximation would be to use the national CPI-U uprating instead — the difference between Seattle-area and national CPI-U is typically small. We could add uprating: gov.bls.cpi.cpi_u (or equivalent) to the standard_deduction/amount.yaml parameter with rounding to nearest $1,000 starting 2030.

Worth implementing as a follow-up once we decide on the right CPI proxy.

Uses national CPI-U as proxy for Seattle-area CPI-U specified in
Sec. 312. Rounds to nearest $1,000. Indexing starts tax year 2030.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@daphnehanse11 daphnehanse11 marked this pull request as ready for review March 13, 2026 14:34
@daphnehanse11 daphnehanse11 requested a review from DTrim99 March 13, 2026 14:46
@DTrim99
Copy link
Collaborator

DTrim99 commented Mar 13, 2026

PR Review: WA SSB 6346 Income Tax Reform

Overall Assessment: ✅ APPROVE with Suggestions

This is a well-implemented reform that follows PolicyEngine patterns correctly. The implementation is comprehensive with good test coverage. CI is passing. A few minor improvements are suggested.


🟢 Positive Observations

  • Clean code structure: Proper use of add(), where(), max_(), and vectorized operations
  • No hard-coded values: All values come from parameters
  • Correct entity levels: All variables use TaxUnit appropriately
  • Proper defined_for usage: StateCode.WA correctly specified
  • Good PDF references: All parameter hrefs include #page=XX
  • Factory function pattern: Correctly implemented following modern reform patterns
  • 11 test cases: Good baseline coverage including income tax, WFTC expansion, non-WA resident

🟡 Should Address (Minor)

1. Parameter Description Format (wftc/min_age.yaml:1)

Current: Minimum age for WFTC eligibility under SSB 6346, for individuals who do not meet the federal EITC age requirement.

Suggestion: Washington sets this age threshold for expanded Working Families Tax Credit eligibility under the SSB 6346 reform.

(Per policyengine-parameter-patterns: use "this" placeholder, single sentence, end with "under the [Program] reform")

2. Parameter Label Missing State (wftc/min_age.yaml:9)

Current: label: SSB 6346 WFTC minimum age for expanded eligibility

Suggestion: label: Washington SSB 6346 WFTC minimum age threshold

(Per policyengine-parameter-patterns: labels should follow [State] [PROGRAM] [description])


🟢 Test Coverage Suggestions (Optional but Recommended)

The test suite is solid but could benefit from a few additional boundary tests:

Scenario Status Notes
$1M threshold boundaries ⚠️ Partial Case 6 tests exactly $1M; consider adding $999,999 and $1,000,001
Charitable cap (individual) ✅ Good Case 8 tests over cap ($200k → $100k)
Charitable cap (joint) ⚠️ Missing Add test with married couple exceeding $100k combined
WFTC age boundaries ⚠️ Partial Case 9 tests age 22; consider adding age 17 (ineligible) and age 18 (minimum)
Reform disabled ❌ Missing Add test with in_effect: false to verify reform toggle

Suggested additional test: Married couple with $120k combined charitable ($60k each) to verify joint cap at $100k.


✅ Validation Summary

Check Result
CI Status ✅ All passing
Regulatory Accuracy ✅ Matches SSB 6346 provisions
Reference Quality ✅ All parameters have PDF page refs
Code Patterns ✅ Follows PolicyEngine standards
Test Coverage ✅ Good (11 cases)

📋 Implementation Notes

The PR correctly documents deferred items:

  • Full Secs. 302-306 base income modifications (LTCG swap, etc.)
  • CPI indexing (Seattle-area CPI vs national CPI)
  • ITIN filer eligibility
  • Married-filing-separately WFTC

This is a reasonable scope for initial implementation.


Recommendation: Merge after addressing the minor parameter formatting suggestions. The additional test cases are optional but would improve robustness.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add reform for WA state income tax

3 participants